Skip to content

Use WAL journaling mode by default if custom WAL methods are specified - #115

Merged
penberg merged 4 commits into
tursodatabase:mainfrom
psarna:default_wal2
Jan 25, 2023
Merged

Use WAL journaling mode by default if custom WAL methods are specified#115
penberg merged 4 commits into
tursodatabase:mainfrom
psarna:default_wal2

Conversation

@psarna

@psarna psarna commented Jan 24, 2023

Copy link
Copy Markdown
Contributor

It's reasonable to assume that a database open with custom WAL methods should default to WAL journaling mode.

This commit comes with an updated test which ensures that the database is open in WAL mode without having to resort to calling PRAGMA journal_mode=wal manually.

This pull request is #105 revamped, where the switch to WAL was done few layers below, which broke a few SQLite invariants and led to bugs.

xPreMainDbOpen hook was only called in case of non-null
WAL pathname, which is a minor mistake - let's fix it.
This patch adds best-effort logic to switch to WAL journaling mode
as soon as a database connection is open, if the database was open
with custom WAL methods defined.
It's performed by calling an extra "pragma journal_mode=wal" query
at the end of the initialization process, and thus it's not guaranteed
to succeed, e.g. in readonly mode.
The test now ensures that the database is already open
in WAL mode by default.
@psarna
psarna requested a review from penberg January 24, 2023 19:37
@penberg
penberg merged commit f0b79f7 into tursodatabase:main Jan 25, 2023
MarinPostma pushed a commit that referenced this pull request Oct 17, 2023
115: Update client JSON to match server JSON r=CodingDoug a=CodingDoug



Co-authored-by: Doug Stevenson <doug@chiselstrike.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants